package com.example.payment.service;

import com.example.payment.dto.PaymentRequest;
import com.example.payment.dto.PaymentResponse;
import com.example.payment.entity.PaymentOrder;
import java.util.Map;

public interface PaymentStrategy {
    
    /**
     * 创建支付订单
     */
    PaymentResponse createPayment(PaymentRequest request);
    
    /**
     * 处理支付回调
     */
    boolean handleCallback(Map<String, String> callbackData);
    
    /**
     * 查询支付状态
     */
    PaymentResponse queryPaymentStatus(String orderNo);
    
    /**
     * 退款
     */
    boolean refund(String orderNo, String reason);
    
    /**
     * 关闭订单
     */
    boolean closeOrder(String orderNo);
    
    /**
     * 获取支付渠道
     */
    String getChannel();
} 